
package com.jf.cloud.flow.mapper;

import com.jf.cloud.flow.model.ProductAnalyseUser;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 流量分析—页面数据统计表
 *
 * @author zz
 * @date 2021-05-21 15:25:19
 */
public interface ProductAnalyseUserMapper {

    /**
     * 获取流量分析—页面数据统计表列表
     *
     * @return 流量分析—页面数据统计表列表
     */
    List<ProductAnalyseUser> list();

    /**
     * 根据流量分析—页面数据统计表id获取流量分析—页面数据统计表
     *
     * @param productAnalyseUserId 流量分析—页面数据统计表id
     * @return 流量分析—页面数据统计表
     */
    ProductAnalyseUser getByProductAnalyseUserId(@Param("productAnalyseUserId") Long productAnalyseUserId);

    /**
     * 保存流量分析—页面数据统计表
     *
     * @param productAnalyseUser 流量分析—页面数据统计表
     */
    void save(@Param("productAnalyseUser") ProductAnalyseUser productAnalyseUser);

    /**
     * 更新流量分析—页面数据统计表
     *
     * @param productAnalyseUser 流量分析—页面数据统计表
     */
    void update(@Param("productAnalyseUser") ProductAnalyseUser productAnalyseUser);

    /**
     * 根据流量分析—页面数据统计表id删除流量分析—页面数据统计表
     *
     * @param productAnalyseUserId
     */
    void deleteById(@Param("productAnalyseUserId") Long productAnalyseUserId);

    /**
     * 批量保存
     *
     * @param productAnalyseUserList
     */
    void saveBatch(@Param("productAnalyseUserList") List<ProductAnalyseUser> productAnalyseUserList);

    /**
     * 批量更新
     *
     * @param productAnalyseUserList
     */
    void updateBatch(@Param("productAnalyseUserList") List<ProductAnalyseUser> productAnalyseUserList);

    /**
     * 删除商品统计数据
     *
     * @param spuId 商品id
     */
    void deleteSpuDataBySpuId(@Param("spuId") Long spuId);

    /**
     * 获取供应商店铺近10天的访客用户Id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param spuIds    供应商代销商品Id
     */
    List<String> getVisitUserIdsInPastTenDays(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("spuIds") List<Long> spuIds);
}
